/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package org.cip.esymons.tramite.beans;

import java.util.Date;
import java.util.List;
import javax.faces.model.SelectItem;
import org.cip.esymons.general.be.Empleado;
import org.cip.esymons.general.be.Nacionalidad;
import org.cip.esymons.general.be.PersonaNatural;
import org.cip.esymons.tramite.bc.AreaDelegate;
import org.cip.esymons.tramite.bc.EmpleadoDelegate;
import org.cip.esymons.tramite.bc.PersonaNaturalDelegate;

/**
 *
 * @author ChristianATE
 */
public class EmpleadoController {

    private PersonaNatural perNatural, persona;
    private Nacionalidad nacion;
    private Empleado empleado;
    private PersonaNaturalDelegate delegadoNatural;
    private EmpleadoDelegate delegado;
    private AreaDelegate areaDelegado;

    public EmpleadoController() {
        delegadoNatural=new PersonaNaturalDelegate();
        nacion=new Nacionalidad();
    }
    
    public PersonaNatural getPerNatural() {
        return perNatural;
    }

    public void setPerNatural(PersonaNatural perNatural) {
        this.perNatural = perNatural;
    }

    public Empleado buscarXId(Long codigo){
        return delegado.find(codigo);
    }


    public String buscarPersona(){
        empleado.setPersonaNatural(delegadoNatural.buscarXDni(empleado.getPersonaNatural().getPerNroDNI()));
        return "#";
    }

    public String grabaDatosPersonales(){  //general

        persona = new PersonaNatural();
        persona = delegadoNatural.buscarXDni(perNatural.getPerNroDNI());

        if(persona != null){

            nacion.setNacCodigo(1);
            persona.setNacionalidad(nacion);
            persona.setPerActivo(true);
            persona.setPerfechaRegistro(new Date());
            persona.setPertieneImagen(false);
            persona.setPerTipo(2);
            delegadoNatural.edit(persona);

            getEmpleado().setPersonaNatural(persona);

            
        }else{
          //Creamos la persona Natural
            nacion.setNacCodigo(1);
            perNatural.setNacionalidad(nacion);
            perNatural.setPerActivo(true);
            perNatural.setPerfechaRegistro(new Date());
            perNatural.setPertieneImagen(false);
            perNatural.setPerTipo(2);
            delegadoNatural.create(perNatural);

            
        }        
        return null;
    }

    public SelectItem[] getEmpDecanatoItems() {
        try {
            List<Empleado> la = delegado.listarEmpleadoXArea(areaDelegado.buscar("Decanato").getAreCodigo());
            SelectItem[] select = new SelectItem[la.size()];
            int i = 0;
            for (Empleado ev : la) {
                SelectItem item = new SelectItem(ev, ev.getPersonaNatural().getNombreCompleto());
                select[i++] = item;
            }
            return select;
        } catch (Exception ex) {
            SelectItem[] select = new SelectItem[1];
            SelectItem item = new SelectItem(null,"No existen Empleados");
            select[0] = item;
            return select;
        }
    }

    public Empleado getEmpleado() {
        return empleado;
    }

    public void setEmpleado(Empleado empleado) {
        this.empleado = empleado;
    }
}